package aiP.A3.BuchhaltungKomponente.DataAccessLayer.Entity;

import aiP.A3.PersistenceService.iEntity;

import javax.persistence.Basic;
import javax.persistence.Entity;
import javax.persistence.Id;
import java.util.Date;

/**
 * Created with IntelliJ IDEA.
 * User: Hero
 * Date: 13.06.14
 * Time: 19:13
 * To change this template use File | Settings | File Templates.
 */
//@javax.persistence.Table(name = "AI_ZAHLUNGSEINGANG", schema = "HR", catalog = "")
@javax.persistence.Table(name = "AI_ZAHLUNGSEINGANG", schema = "AIP", catalog = "")
@Entity
public class Zahlungseingang implements iEntity {
    private int id;

    @javax.persistence.Column(name = "ID")
    @Id
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    private Date eingangsdatum;

    @javax.persistence.Column(name = "EINGANGSDATUM")
    @Basic
    public Date getEingangsdatum() {
        return eingangsdatum;
    }

    public void setEingangsdatum(Date eingangsdatum) {
        this.eingangsdatum = eingangsdatum;
    }

    private double betrag;

    @javax.persistence.Column(name = "BETRAG")
    @Basic
    public double getBetrag() {
        return betrag;
    }

    public void setBetrag(double betrag) {
        this.betrag = betrag;
    }

    private Integer rechnungsnr;

    @javax.persistence.Column(name = "RECHNUNGSNR")
    @Basic
    public Integer getRechnungsnr() {
        return rechnungsnr;
    }

    public void setRechnungsnr(Integer rechnungsnr) {
        this.rechnungsnr = rechnungsnr;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        Zahlungseingang that = (Zahlungseingang) o;

        if (Double.compare(that.betrag, betrag) != 0) return false;
        if (id != that.id) return false;
        if (eingangsdatum != null ? !eingangsdatum.equals(that.eingangsdatum) : that.eingangsdatum != null)
            return false;
        if (!rechnungsnr.equals(that.rechnungsnr)) return false;

        return true;
    }

    @Override
    public int hashCode() {
        int result;
        long temp;
        result = id;
        result = 31 * result + (eingangsdatum != null ? eingangsdatum.hashCode() : 0);
        temp = Double.doubleToLongBits(betrag);
        result = 31 * result + (int) (temp ^ (temp >>> 32));
        result = 31 * result + rechnungsnr.hashCode();
        return result;
    }

    public String toString(){
        return "Rechnungsnr: " + getRechnungsnr() + "Eingangsdatum: " + getEingangsdatum() + "Betrag: " + getBetrag();
    }
}
